/*
 * All right reserved@Raygo 2022~2030
 */

package com.raygo.runner.core.entity;

import java.util.List;

import com.raygo.runner.core.result.BoolResult;

/**
 * 组件接口
 *
 * @author Raygo
 * @since 2022年5月21日
 */
public interface Component {
    /**
     * 初始化
     *
     * @param context 上下文
     * @return 结果，以code等于0成功，其他值失败
     */
    public BoolResult init(Context context);

    /**
     * 执行组件的方法
     *
     * @param method 方法ID
     * @param params 参数列表
     * @return 结果，以code等于0成功，其他值失败
     */
    public BoolResult run(String method, List<Object> params);

    /**
     * 退出，结束
     *
     * @return 结果，以code等于0成功，其他值失败
     */
    public BoolResult exit();

    /**
     * 获取版本
     *
     * @return 版本字符串
     */
    public String getVersion();
}
